package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 房间设备学生成绩记录对象 tb_room_device
 *
 * @author ruoyi
 * @date 2025-10-25
 */
public class TbRoomDevice extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 房间id
     */
    //@Excel(name = "房间id")
    private Long roomId;

    /**
     * 设备id
     */
    //@Excel(name = "设备id")
    private Long deviceId;

    /**
     * 学员id
     */
    //@Excel(name = "学员id")
    private Long userId;

    /**
     * 试题id
     */
    //@Excel(name = "试题id")
    private Long stId;


    /**
     * 房间id
     */
    @Excel(name = "房间名称")
    private String roomName;

    /**
     * 设备id
     */
    @Excel(name = "设备名称")
    private String deviceName;

    /**
     * 学员id
     */
    @Excel(name = "学员名称")
    private String userName;

    /**
     * 试题id
     */
    @Excel(name = "试题名称")
    private String stName;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private String state;


    /**
     * 题目类型
     */
    @Excel(name = "题目类型")
    private String type;

    /**
     * 成绩
     */
    @Excel(name = "成绩")
    private String cj;

    /**
     * 在线状态
     */
    @Excel(name = "在线状态")
    private String onLineState;

    /**
     * 进度
     */
    @Excel(name = "进度")
    private String progress;

    /**
     * 主机号
     */
    @Excel(name = "主机号")
    private String hostNumbeeer;

    /**
     * 耳麦配置
     */
    @Excel(name = "耳麦配置")
    private String headset;

    /**
     * 失误等级
     */
    @Excel(name = "失误等级")
    private Integer mistake;

    /**
     * 失误原因
     */
    @Excel(name = "失误原因")
    private String mistakeReson;

    /**
     * 操作详情
     */
    @Excel(name = "操作详情")
    private String operationDetails;


    private TbRoom tbRoom;

    private TbSt tbSt;

    private TbDevice tbDevice;

    private SysUser sysUser;

    public TbRoom getTbRoom() {
        return tbRoom;
    }

    public void setTbRoom(TbRoom tbRoom) {
        this.tbRoom = tbRoom;
    }

    public TbSt getTbSt() {
        return tbSt;
    }

    public void setTbSt(TbSt tbSt) {
        this.tbSt = tbSt;
    }

    public TbDevice getTbDevice() {
        return tbDevice;
    }

    public void setTbDevice(TbDevice tbDevice) {
        this.tbDevice = tbDevice;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setRoomId(Long roomId) {
        this.roomId = roomId;
    }

    public Long getRoomId() {
        return roomId;
    }

    public void setDeviceId(Long deviceId) {
        this.deviceId = deviceId;
    }

    public Long getDeviceId() {
        return deviceId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setStId(Long stId) {
        this.stId = stId;
    }

    public Long getStId() {
        return stId;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getState() {
        return state;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getType() {
        return type;
    }

    public void setCj(String cj) {
        this.cj = cj;
    }

    public String getCj() {
        return cj;
    }

    public void setOnLineState(String onLineState) {
        this.onLineState = onLineState;
    }

    public String getOnLineState() {
        return onLineState;
    }

    public void setProgress(String progress) {
        this.progress = progress;
    }

    public String getProgress() {
        return progress;
    }

    public void setHostNumbeeer(String hostNumbeeer) {
        this.hostNumbeeer = hostNumbeeer;
    }

    public String getHostNumbeeer() {
        return hostNumbeeer;
    }

    public void setHeadset(String headset) {
        this.headset = headset;
    }

    public String getHeadset() {
        return headset;
    }

    public void setMistake(Integer mistake) {
        this.mistake = mistake;
    }

    public Integer getMistake() {
        return mistake;
    }

    public void setMistakeReson(String mistakeReson) {
        this.mistakeReson = mistakeReson;
    }

    public String getMistakeReson() {
        return mistakeReson;
    }

    public void setOperationDetails(String operationDetails) {
        this.operationDetails = operationDetails;
    }

    public String getOperationDetails() {
        return operationDetails;
    }


    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getStName() {
        return stName;
    }

    public void setStName(String stName) {
        this.stName = stName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("roomId", getRoomId())
                .append("deviceId", getDeviceId())
                .append("userId", getUserId())
                .append("stId", getStId())
                .append("startTime", getStartTime())
                .append("endTime", getEndTime())
                .append("state", getState())
                .append("type", getType())
                .append("cj", getCj())
                .append("onLineState", getOnLineState())
                .append("progress", getProgress())
                .append("hostNumbeeer", getHostNumbeeer())
                .append("headset", getHeadset())
                .append("mistake", getMistake())
                .append("mistakeReson", getMistakeReson())
                .append("operationDetails", getOperationDetails())
                .toString();
    }
}
